#ifndef __TASK_H__
#define __TASK_H__

#include <iostream>
#include <functional>

using namespace std;

typedef function<int(int,int)> func;

//构建任务
class Task
{
public:
    Task()
    {}

    //给定一个缺省参数，默认加法
    Task(int x,int y,func fun=[](int a,int b){return a+b;})
        :x_(x)
        ,y_(y)
        ,fun_(fun)
    {}

    //利用仿函数进行任务处理
    int operator()()
    {
        //任务处理
        return fun_(x_,y_);
    }

    int x_;
    int y_;
    func fun_;
};

#endif